let array: number[] = [1, 2, 3, 4, 5]

console.log(array.length)

array[9] = 0
console.log(array.length)

console.log(array)
console.log(array[7])

// Java 数组是固定长度数组，创建完毕后不可变。
// JavaScript 数组是可变长度数组，创建后可以随时改变。

// 出现空洞的情况，不会自动的填充值。——不知道填多少合适
// undefined 类型代表未定义或者未初始化。

// 对于超出数组长度的索引值，还是 undefined。
console.log(array[10])


let arr: readonly number[] = [1, 2, 3, 4, 5]
console.log(arr);
// 只读数组只可以读，不能修改值
// arr[0] = 123
// 不能追加其它值
// arr[6] = 123

const arr1: number[] = [1, 2, 3, 4, 5]
arr1[0] = 123
arr1[9] = 123
// 不用使用其它数组关联
// arr1 = [9, 8, 7]

let arr2 = [1, 2, 3, 4, 5]  as const
console.log(arr2[0]);
// Cannot assign to '0' because it is a read-only property.
// arr2[0] = 123

// 运行时发现是修改后的值，语法错误，但是仍然修改了
console.log(arr2);

